{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# cnn-mnist\n",
    "使用tensorflow，构造并训练一个神经网络，在测试机上达到超过98%的准确率。 \n",
    "作业详情：https://gitee.com/ai100/quiz-w7-1-cnn-mnist "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n",
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'channels_last'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"A very simple MNIST classifier.\n",
    "See extensive documentation at\n",
    "https://www.tensorflow.org/get_started/mnist/beginners\n",
    "\"\"\"\n",
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import argparse\n",
    "import sys\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "\n",
    "from keras.layers.core import Dense, Flatten, Dropout\n",
    "from keras.layers.convolutional import Conv2D\n",
    "from keras.layers.pooling import MaxPooling2D\n",
    "from keras import initializers\n",
    "from keras.layers import advanced_activations\n",
    "\n",
    "from keras import backend as K\n",
    "\n",
    "K.image_data_format() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们在这里调用系统提供的Mnist数据函数为我们读入数据，如果没有下载的话则进行下载。\n",
    "\n",
    "<font color=#ff0000>**这里将data_dir改为适合你的运行环境的目录**</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From <ipython-input-2-698ada706af1>:3: read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use alternatives such as official/mnist/dataset.py from tensorflow/models.\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\contrib\\learn\\python\\learn\\datasets\\mnist.py:260: maybe_download (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please write your own downloading logic.\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\contrib\\learn\\python\\learn\\datasets\\mnist.py:262: extract_images (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use tf.data to implement this functionality.\n",
      "Extracting /tmp/tensorflow/mnist/input_data\\train-images-idx3-ubyte.gz\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\contrib\\learn\\python\\learn\\datasets\\mnist.py:267: extract_labels (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use tf.data to implement this functionality.\n",
      "Extracting /tmp/tensorflow/mnist/input_data\\train-labels-idx1-ubyte.gz\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\contrib\\learn\\python\\learn\\datasets\\mnist.py:110: dense_to_one_hot (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use tf.one_hot on tensors.\n",
      "Extracting /tmp/tensorflow/mnist/input_data\\t10k-images-idx3-ubyte.gz\n",
      "Extracting /tmp/tensorflow/mnist/input_data\\t10k-labels-idx1-ubyte.gz\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\contrib\\learn\\python\\learn\\datasets\\mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use alternatives such as official/mnist/dataset.py from tensorflow/models.\n"
     ]
    }
   ],
   "source": [
    "# Import data\n",
    "data_dir = '/tmp/tensorflow/mnist/input_data'\n",
    "mnist = input_data.read_data_sets(data_dir, one_hot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义输入输出\n",
    "x = tf.placeholder(tf.float32, [None, 784])\n",
    "y_ = tf.placeholder(tf.float32, [None, 10])\n",
    "# 学习速率\n",
    "learning_rate = tf.placeholder(tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.name_scope('reshape'):\n",
    "  x_image = tf.reshape(x, [-1, 28, 28, 1])\n",
    "\n",
    "\n",
    "# 二维卷积层，即对图像的空域卷积。\n",
    "# keras.layers.convolutional.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, \n",
    "#                                  dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', \n",
    "#                                  bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, \n",
    "#                                  activity_regularizer=None, kernel_constraint=None, bias_constraint=None)\n",
    "# filters：卷积核的数目（即输出的维度）\n",
    "# kernel_size：卷积核的宽度和长度。如为单个整数，则表示在各个空间维度的相同长度。\n",
    "# strides：卷积的步长。如为单个整数，则表示在各个空间维度的相同步长。\n",
    "# activation：激活函数，如果不指定该参数，将不会使用任何激活函数（即使用线性激活函数：a(x)=x）\n",
    "# padding：补0策略，为“valid”, “same” 。\n",
    "# use_bias:布尔值，是否使用偏置项\n",
    "# kernel_initializer：权值初始化方法\n",
    "# bias_initializer：权值初始化方法\n",
    "# kernel_regularizer：施加在权重上的正则项\n",
    "# bias_regularizer：施加在偏置向量上的正则项\n",
    "# activity_regularizer：施加在输出上的正则项\n",
    "# kernel_constraints：施加在权重上的约束项\n",
    "# bias_constraints：施加在偏置上的约束项\n",
    "\n",
    "# 卷积层1\n",
    "net = Conv2D(16, kernel_size=[7,7], strides=[1,1], activation='selu', padding='same',\n",
    "             kernel_initializer = 'glorot_normal',  # Glorot正态分布初始化方法，也称作Xavier正态分布初始化\n",
    "             bias_initializer = initializers.Constant(value=0.01), \n",
    "             input_shape=[28,28,1])(x_image)  \n",
    "# 第一层卷积必须显示指定input_shape输入数据形状[高，宽，通道数]\n",
    "# Conv2D 是类方法，第一层时需传递输入数据x_image\n",
    "\n",
    "\n",
    "# 最大值池化层\n",
    "# keras.layers.pooling.MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)\n",
    "# pool_size：代表在两个方向（竖直，水平）上的下采样因子，如取（2，2）将使图片在两个维度上均变为原长的一半。\n",
    "# strides：步长值\n",
    "# border_mode：‘valid’或者‘same’\n",
    "# data_format：“channels_first”或“channels_last”之一，代表图像的通道维的位置。以128x128的RGB图像为例，\n",
    "#              “channels_first”应将数据组织为（3,128,128），而“channels_last”应将数据组织为（128,128,3）。\n",
    "\n",
    "# 池化层1\n",
    "net = MaxPooling2D(pool_size=[2,2])(net) # 池化\n",
    "\n",
    "#卷积层2\n",
    "net = Conv2D(32, kernel_size=[5,5], strides=[1,1],activation='selu', padding='same', \n",
    "             kernel_initializer = 'glorot_normal',  # Glorot正态分布初始化方法，也称作Xavier正态分布初始化\n",
    "             bias_initializer = initializers.Constant(value=0.01))(net)\n",
    "\n",
    "# 池化层2\n",
    "net = MaxPooling2D(pool_size=[2,2])(net)\n",
    "\n",
    "# Dropout层\n",
    "# net = Dropout(0.5)(net)\n",
    "\n",
    "# Flatten层，用来将输入“压平”，即把多维的输入一维化，常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。\n",
    "net = Flatten()(net) \n",
    "\n",
    "# 全连接层\n",
    "# keras.layers.core.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', \n",
    "#                         bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, \n",
    "#                         activity_regularizer=None, kernel_constraint=None, bias_constraint=None)\n",
    "# units：大于0的整数，代表该层的输出维度\n",
    "# activation：激活函数，如果不指定该参数，将不会使用任何激活函数（即使用线性激活函数：a(x)=x）\n",
    "# use_bias: 布尔值，是否使用偏置项\n",
    "# kernel_initializer：权值初始化方法，为预定义初始化方法名的字符串，或用于初始化权重的初始化器\n",
    "# bias_initializer：偏置向量初始化方法，为预定义初始化方法名的字符串，或用于初始化偏置向量的初始化器\n",
    "# kernel_regularizer：施加在权重上的正则项\n",
    "# bias_regularizer：施加在偏置向量上的正则项\n",
    "# activity_regularizer：施加在输出上的正则项\n",
    "# kernel_constraints：施加在权重上的约束项\n",
    "# bias_constraints：施加在偏置上的约束项\n",
    "\n",
    "# 全连接层1\n",
    "net = Dense(1000, activation='selu')(net) # 全连接层\n",
    "\n",
    "# 全连接层2\n",
    "net = Dense(10,activation='softmax')(net)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 计算交叉熵\n",
    "from keras.objectives import categorical_crossentropy\n",
    "cross_entropy = tf.reduce_mean(categorical_crossentropy(y_, net)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "l2_loss = tf.add_n( [tf.nn.l2_loss(w) for w in tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES)] )\n",
    "#惩罚因子，即正则化因子\n",
    "regularization_rate = 2e-3\n",
    "total_loss = cross_entropy + regularization_rate * l2_loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(total_loss)\n",
    "sess = tf.Session()\n",
    "K.set_session(sess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 100, entropy loss: 0.324768, l2_loss: 614.839600, total loss: 1.554447, learning rate: 0.090000, accuracy: 0.930000\n",
      "step 200, entropy loss: 0.205661, l2_loss: 595.343750, total loss: 1.396349, learning rate: 0.088200, accuracy: 0.990000\n",
      "step 300, entropy loss: 0.080948, l2_loss: 576.426697, total loss: 1.233801, learning rate: 0.086436, accuracy: 1.000000\n",
      "step 400, entropy loss: 0.069208, l2_loss: 558.302002, total loss: 1.185812, learning rate: 0.084707, accuracy: 1.000000\n",
      "step 500, entropy loss: 0.105032, l2_loss: 541.132690, total loss: 1.187297, learning rate: 0.083013, accuracy: 0.990000\n",
      "step 500, 训练误差:  0.971745\n",
      "step 500, 测试误差:  0.971100\n",
      "step 600, entropy loss: 0.041127, l2_loss: 524.765564, total loss: 1.090658, learning rate: 0.081353, accuracy: 1.000000\n",
      "step 700, entropy loss: 0.082407, l2_loss: 509.210480, total loss: 1.100828, learning rate: 0.079726, accuracy: 0.980000\n",
      "step 800, entropy loss: 0.073213, l2_loss: 494.382568, total loss: 1.061978, learning rate: 0.078131, accuracy: 1.000000\n",
      "step 900, entropy loss: 0.160621, l2_loss: 480.236633, total loss: 1.121095, learning rate: 0.076569, accuracy: 0.990000\n",
      "step 1000, entropy loss: 0.064577, l2_loss: 466.776459, total loss: 0.998130, learning rate: 0.075037, accuracy: 1.000000\n",
      "step 1000, 训练误差:  0.983036\n",
      "step 1000, 测试误差:  0.982800\n",
      "step 1100, entropy loss: 0.062931, l2_loss: 454.000427, total loss: 0.970932, learning rate: 0.073537, accuracy: 1.000000\n",
      "step 1200, entropy loss: 0.071305, l2_loss: 441.730194, total loss: 0.954766, learning rate: 0.072066, accuracy: 0.990000\n",
      "step 1300, entropy loss: 0.025436, l2_loss: 430.109222, total loss: 0.885654, learning rate: 0.070625, accuracy: 1.000000\n",
      "step 1400, entropy loss: 0.031620, l2_loss: 419.013123, total loss: 0.869647, learning rate: 0.069212, accuracy: 1.000000\n",
      "step 1500, entropy loss: 0.016519, l2_loss: 408.392792, total loss: 0.833305, learning rate: 0.067828, accuracy: 1.000000\n",
      "step 1500, 训练误差:  0.987927\n",
      "step 1500, 测试误差:  0.985000\n",
      "step 1600, entropy loss: 0.007918, l2_loss: 398.312805, total loss: 0.804544, learning rate: 0.066471, accuracy: 1.000000\n",
      "step 1700, entropy loss: 0.039858, l2_loss: 388.702362, total loss: 0.817263, learning rate: 0.065142, accuracy: 1.000000\n",
      "step 1800, entropy loss: 0.037241, l2_loss: 379.477661, total loss: 0.796196, learning rate: 0.063839, accuracy: 1.000000\n",
      "step 1900, entropy loss: 0.016740, l2_loss: 370.686127, total loss: 0.758112, learning rate: 0.062562, accuracy: 1.000000\n",
      "step 2000, entropy loss: 0.011845, l2_loss: 362.284821, total loss: 0.736415, learning rate: 0.061311, accuracy: 1.000000\n",
      "step 2000, 训练误差:  0.989564\n",
      "step 2000, 测试误差:  0.986200\n",
      "step 2100, entropy loss: 0.022743, l2_loss: 354.247101, total loss: 0.731237, learning rate: 0.060085, accuracy: 1.000000\n",
      "step 2200, entropy loss: 0.026702, l2_loss: 346.567963, total loss: 0.719838, learning rate: 0.058883, accuracy: 1.000000\n",
      "step 2300, entropy loss: 0.018218, l2_loss: 339.189941, total loss: 0.696598, learning rate: 0.057705, accuracy: 1.000000\n",
      "step 2400, entropy loss: 0.055973, l2_loss: 332.124481, total loss: 0.720222, learning rate: 0.056551, accuracy: 0.990000\n",
      "step 2500, entropy loss: 0.009278, l2_loss: 325.329926, total loss: 0.659938, learning rate: 0.055420, accuracy: 1.000000\n",
      "step 2500, 训练误差:  0.989382\n",
      "step 2500, 测试误差:  0.985500\n",
      "step 2600, entropy loss: 0.043003, l2_loss: 318.873779, total loss: 0.680751, learning rate: 0.054312, accuracy: 1.000000\n",
      "step 2700, entropy loss: 0.042295, l2_loss: 312.664581, total loss: 0.667624, learning rate: 0.053226, accuracy: 0.990000\n",
      "step 2800, entropy loss: 0.031342, l2_loss: 306.689117, total loss: 0.644720, learning rate: 0.052161, accuracy: 0.990000\n",
      "step 2900, entropy loss: 0.013045, l2_loss: 300.933167, total loss: 0.614912, learning rate: 0.051118, accuracy: 1.000000\n",
      "step 3000, entropy loss: 0.046358, l2_loss: 295.429932, total loss: 0.637218, learning rate: 0.050095, accuracy: 0.990000\n",
      "step 3000, 训练误差:  0.990764\n",
      "step 3000, 测试误差:  0.987900\n",
      "step 3100, entropy loss: 0.027171, l2_loss: 290.152100, total loss: 0.607476, learning rate: 0.049094, accuracy: 1.000000\n",
      "step 3200, entropy loss: 0.062215, l2_loss: 285.036469, total loss: 0.632288, learning rate: 0.048112, accuracy: 0.990000\n",
      "step 3300, entropy loss: 0.035740, l2_loss: 280.134186, total loss: 0.596008, learning rate: 0.047149, accuracy: 1.000000\n",
      "step 3400, entropy loss: 0.016566, l2_loss: 275.383057, total loss: 0.567332, learning rate: 0.046206, accuracy: 1.000000\n",
      "step 3500, entropy loss: 0.075540, l2_loss: 270.892151, total loss: 0.617324, learning rate: 0.045282, accuracy: 0.990000\n",
      "step 3500, 训练误差:  0.991873\n",
      "step 3500, 测试误差:  0.987900\n",
      "step 3600, entropy loss: 0.018125, l2_loss: 266.518616, total loss: 0.551162, learning rate: 0.044377, accuracy: 1.000000\n",
      "step 3700, entropy loss: 0.039380, l2_loss: 262.355988, total loss: 0.564092, learning rate: 0.043489, accuracy: 1.000000\n",
      "step 3800, entropy loss: 0.024202, l2_loss: 258.300598, total loss: 0.540803, learning rate: 0.042619, accuracy: 1.000000\n",
      "step 3900, entropy loss: 0.077099, l2_loss: 254.410126, total loss: 0.585919, learning rate: 0.041767, accuracy: 0.990000\n",
      "step 4000, entropy loss: 0.025782, l2_loss: 250.657974, total loss: 0.527098, learning rate: 0.040932, accuracy: 1.000000\n",
      "step 4000, 训练误差:  0.992564\n",
      "step 4000, 测试误差:  0.988700\n",
      "step 4100, entropy loss: 0.017659, l2_loss: 247.017258, total loss: 0.511694, learning rate: 0.040113, accuracy: 1.000000\n",
      "step 4200, entropy loss: 0.004462, l2_loss: 243.528412, total loss: 0.491519, learning rate: 0.039311, accuracy: 1.000000\n",
      "step 4300, entropy loss: 0.039482, l2_loss: 240.147766, total loss: 0.519778, learning rate: 0.038525, accuracy: 1.000000\n",
      "step 4400, entropy loss: 0.017898, l2_loss: 236.846542, total loss: 0.491591, learning rate: 0.037754, accuracy: 1.000000\n",
      "step 4500, entropy loss: 0.070754, l2_loss: 233.736038, total loss: 0.538226, learning rate: 0.036999, accuracy: 0.990000\n",
      "step 4500, 训练误差:  0.993909\n",
      "step 4500, 测试误差:  0.989800\n",
      "step 4600, entropy loss: 0.057998, l2_loss: 230.696564, total loss: 0.519391, learning rate: 0.036259, accuracy: 0.990000\n",
      "step 4700, entropy loss: 0.024005, l2_loss: 227.765732, total loss: 0.479536, learning rate: 0.035534, accuracy: 1.000000\n",
      "step 4800, entropy loss: 0.017487, l2_loss: 224.930695, total loss: 0.467349, learning rate: 0.034823, accuracy: 1.000000\n",
      "step 4900, entropy loss: 0.165853, l2_loss: 222.169876, total loss: 0.610193, learning rate: 0.034127, accuracy: 0.990000\n",
      "step 5000, entropy loss: 0.008583, l2_loss: 219.514618, total loss: 0.447612, learning rate: 0.033444, accuracy: 1.000000\n",
      "step 5000, 训练误差:  0.993436\n",
      "step 5000, 测试误差:  0.988900\n",
      "step 5100, entropy loss: 0.004158, l2_loss: 216.941742, total loss: 0.438041, learning rate: 0.032775, accuracy: 1.000000\n",
      "step 5200, entropy loss: 0.031267, l2_loss: 214.500580, total loss: 0.460268, learning rate: 0.032120, accuracy: 1.000000\n",
      "step 5300, entropy loss: 0.031919, l2_loss: 212.089294, total loss: 0.456098, learning rate: 0.031477, accuracy: 1.000000\n",
      "step 5400, entropy loss: 0.025706, l2_loss: 209.751556, total loss: 0.445209, learning rate: 0.030848, accuracy: 1.000000\n",
      "step 5500, entropy loss: 0.022836, l2_loss: 207.490570, total loss: 0.437817, learning rate: 0.030231, accuracy: 1.000000\n",
      "step 5500, 训练误差:  0.994418\n",
      "step 5500, 测试误差:  0.990100\n",
      "step 5600, entropy loss: 0.027310, l2_loss: 205.327225, total loss: 0.437965, learning rate: 0.029626, accuracy: 0.990000\n",
      "step 5700, entropy loss: 0.028147, l2_loss: 203.209015, total loss: 0.434565, learning rate: 0.029034, accuracy: 0.990000\n",
      "step 5800, entropy loss: 0.026098, l2_loss: 201.130737, total loss: 0.428360, learning rate: 0.028453, accuracy: 1.000000\n",
      "step 5900, entropy loss: 0.019246, l2_loss: 199.169586, total loss: 0.417586, learning rate: 0.027884, accuracy: 1.000000\n",
      "step 6000, entropy loss: 0.011197, l2_loss: 197.247513, total loss: 0.405692, learning rate: 0.027326, accuracy: 1.000000\n",
      "step 6000, 训练误差:  0.994436\n",
      "step 6000, 测试误差:  0.989200\n",
      "step 6100, entropy loss: 0.015358, l2_loss: 195.399277, total loss: 0.406156, learning rate: 0.026780, accuracy: 1.000000\n",
      "step 6200, entropy loss: 0.033004, l2_loss: 193.607971, total loss: 0.420220, learning rate: 0.026244, accuracy: 0.990000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 6300, entropy loss: 0.022737, l2_loss: 191.870682, total loss: 0.406479, learning rate: 0.025719, accuracy: 1.000000\n",
      "step 6400, entropy loss: 0.019162, l2_loss: 190.155746, total loss: 0.399473, learning rate: 0.025205, accuracy: 1.000000\n",
      "step 6500, entropy loss: 0.016370, l2_loss: 188.501495, total loss: 0.393373, learning rate: 0.024701, accuracy: 1.000000\n",
      "step 6500, 训练误差:  0.994709\n",
      "step 6500, 测试误差:  0.989800\n",
      "step 6600, entropy loss: 0.037315, l2_loss: 186.893234, total loss: 0.411101, learning rate: 0.024207, accuracy: 1.000000\n",
      "step 6700, entropy loss: 0.009187, l2_loss: 185.332199, total loss: 0.379851, learning rate: 0.023723, accuracy: 1.000000\n",
      "step 6800, entropy loss: 0.014271, l2_loss: 183.821060, total loss: 0.381913, learning rate: 0.023248, accuracy: 1.000000\n",
      "step 6900, entropy loss: 0.029636, l2_loss: 182.354706, total loss: 0.394345, learning rate: 0.022783, accuracy: 1.000000\n",
      "step 7000, entropy loss: 0.013800, l2_loss: 180.941940, total loss: 0.375684, learning rate: 0.022328, accuracy: 1.000000\n",
      "step 7000, 训练误差:  0.994891\n",
      "step 7000, 测试误差:  0.990200\n",
      "step 7100, entropy loss: 0.006780, l2_loss: 179.565384, total loss: 0.365911, learning rate: 0.021881, accuracy: 1.000000\n",
      "step 7200, entropy loss: 0.029580, l2_loss: 178.229599, total loss: 0.386039, learning rate: 0.021443, accuracy: 1.000000\n",
      "step 7300, entropy loss: 0.008235, l2_loss: 176.920609, total loss: 0.362076, learning rate: 0.021015, accuracy: 1.000000\n",
      "step 7400, entropy loss: 0.014600, l2_loss: 175.653061, total loss: 0.365906, learning rate: 0.020594, accuracy: 1.000000\n",
      "step 7500, entropy loss: 0.043246, l2_loss: 174.421387, total loss: 0.392088, learning rate: 0.020182, accuracy: 0.990000\n",
      "step 7500, 训练误差:  0.994891\n",
      "step 7500, 测试误差:  0.989400\n",
      "step 7600, entropy loss: 0.011244, l2_loss: 173.227600, total loss: 0.357699, learning rate: 0.019779, accuracy: 1.000000\n",
      "step 7700, entropy loss: 0.053794, l2_loss: 172.052979, total loss: 0.397900, learning rate: 0.019383, accuracy: 0.990000\n",
      "step 7800, entropy loss: 0.006732, l2_loss: 170.918442, total loss: 0.348569, learning rate: 0.018995, accuracy: 1.000000\n",
      "step 7900, entropy loss: 0.022417, l2_loss: 169.834442, total loss: 0.362086, learning rate: 0.018616, accuracy: 1.000000\n",
      "step 8000, entropy loss: 0.005866, l2_loss: 168.761215, total loss: 0.343388, learning rate: 0.018243, accuracy: 1.000000\n",
      "step 8000, 训练误差:  0.994927\n",
      "step 8000, 测试误差:  0.989900\n",
      "step 8100, entropy loss: 0.025393, l2_loss: 167.715607, total loss: 0.360824, learning rate: 0.017878, accuracy: 1.000000\n",
      "step 8200, entropy loss: 0.018466, l2_loss: 166.701324, total loss: 0.351868, learning rate: 0.017521, accuracy: 1.000000\n",
      "step 8300, entropy loss: 0.009261, l2_loss: 165.720917, total loss: 0.340703, learning rate: 0.017170, accuracy: 1.000000\n",
      "step 8400, entropy loss: 0.027762, l2_loss: 164.761688, total loss: 0.357286, learning rate: 0.016827, accuracy: 1.000000\n",
      "step 8500, entropy loss: 0.019620, l2_loss: 163.832489, total loss: 0.347285, learning rate: 0.016490, accuracy: 1.000000\n",
      "step 8500, 训练误差:  0.995291\n",
      "step 8500, 测试误差:  0.989600\n",
      "step 8600, entropy loss: 0.020735, l2_loss: 162.924057, total loss: 0.346583, learning rate: 0.016161, accuracy: 1.000000\n",
      "step 8700, entropy loss: 0.006928, l2_loss: 162.032837, total loss: 0.330993, learning rate: 0.015837, accuracy: 1.000000\n",
      "step 8800, entropy loss: 0.009027, l2_loss: 161.174377, total loss: 0.331376, learning rate: 0.015521, accuracy: 1.000000\n",
      "step 8900, entropy loss: 0.024063, l2_loss: 160.345261, total loss: 0.344754, learning rate: 0.015210, accuracy: 1.000000\n",
      "step 9000, entropy loss: 0.006553, l2_loss: 159.534897, total loss: 0.325623, learning rate: 0.014906, accuracy: 1.000000\n",
      "step 9000, 训练误差:  0.995309\n",
      "step 9000, 测试误差:  0.990700\n"
     ]
    }
   ],
   "source": [
    "init_op = tf.global_variables_initializer()\n",
    "sess.run(init_op)\n",
    "batch_size = 100\n",
    "# 学习速率\n",
    "lr = 0.09\n",
    "# 学习速率的衰减率\n",
    "lr_decay = 0.98\n",
    "acc_train_mat = []\n",
    "acc_test_mat = []\n",
    "loss_mat = []\n",
    "l2_loss_mat = []\n",
    "total_loss_mat = []\n",
    "# 训练\n",
    "for step in range(9000):    \n",
    "    batch_xs, batch_ys = mnist.train.next_batch(batch_size)\n",
    "    _, loss, l2_loss_value, total_loss_value = sess.run(\n",
    "               [train_step, cross_entropy, l2_loss, total_loss], \n",
    "               feed_dict={x: batch_xs, y_: batch_ys, learning_rate:lr})\n",
    "    if (step+1) % 100 == 0: \n",
    "        # 测试模型\n",
    "        correct_prediction = tf.equal(tf.argmax(net, 1), tf.argmax(y_, 1))\n",
    "        accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n",
    "        print('step %d, entropy loss: %f, l2_loss: %f, total loss: %f, learning rate: %f, accuracy: %f' % \n",
    "                (step+1, loss, l2_loss_value, total_loss_value, lr, sess.run(accuracy, feed_dict={x: batch_xs, y_: batch_ys})))\n",
    "        loss_mat.append(loss)\n",
    "        l2_loss_mat.append(l2_loss_value)\n",
    "        total_loss_mat.append(total_loss_value)\n",
    "        \n",
    "        # 衰减学习速率\n",
    "        lr *= lr_decay\n",
    "        \n",
    "        if (step+1) % 500 == 0:\n",
    "            # 计算训练误差，因显卡内存不足，故分批计算求平均值\n",
    "            train_size = mnist.train.images.shape\n",
    "            acc_batch = 0\n",
    "            acc = []\n",
    "            step_time = (int)(train_size[0]/batch_size)\n",
    "            for step_train in range(step_time):\n",
    "                batch_xs, batch_ys = mnist.train.next_batch(batch_size)\n",
    "                acc_batch = sess.run(accuracy, feed_dict={x: batch_xs, y_: batch_ys})\n",
    "                acc.append(acc_batch)\n",
    "            step_acc_train = np.mean(acc)\n",
    "            print('step %d, 训练误差:  %f' % (step+1, step_acc_train))\n",
    "            acc_train_mat.append(step_acc_train)\n",
    "\n",
    "            # 计算测试误差，因显卡内存不足，故分批计算求平均值\n",
    "            test_size = mnist.test.images.shape\n",
    "            acc_batch = 0\n",
    "            acc = []\n",
    "            step_time = (int)(test_size[0]/batch_size)\n",
    "            for step_test in range(step_time):\n",
    "                batch_xs_test, batch_ys_test = mnist.test.next_batch(batch_size)\n",
    "                acc_batch = sess.run(accuracy, feed_dict={x: batch_xs_test, y_: batch_ys_test})\n",
    "                acc.append(acc_batch)\n",
    "            step_acc_test = np.mean(acc)\n",
    "            print('step %d, 测试误差:  %f' % (step+1, step_acc_test))\n",
    "            acc_test_mat.append(step_acc_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "plt.plot(range(len(loss_mat)), loss_mat) \n",
    "plt.xlabel('steps')\n",
    "plt.ylabel('steps_entropy_loss')\n",
    "plt.show() \n",
    "\n",
    "plt.plot(range(len(l2_loss_mat)), l2_loss_mat) \n",
    "plt.xlabel('steps')\n",
    "plt.ylabel('steps_l2_loss')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(range(len(total_loss_mat)), total_loss_mat) \n",
    "plt.xlabel('steps')\n",
    "plt.ylabel('steps_total_loss')\n",
    "plt.show()\n",
    "\n",
    "plt.plot(range(len(acc_train_mat)), acc_train_mat, label='Train Accuracy') \n",
    "plt.plot(range(len(acc_test_mat)), acc_test_mat, label='Test Accuracy')\n",
    "plt.legend()\n",
    "plt.xlabel('steps')\n",
    "plt.ylabel('accuracy')\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "毫无疑问，这个模型是一个非常简陋，性能也不理想的模型。目前只能达到92%左右的准确率。\n",
    "接下来，希望大家利用现有的知识，将这个模型优化至98%以上的准确率。\n",
    "Hint：\n",
    "- 卷积\n",
    "- 池化\n",
    "- 激活函数\n",
    "- 正则化\n",
    "- 初始化\n",
    "- 摸索一下各个超参数\n",
    "  - 卷积kernel size\n",
    "  - 卷积kernel 数量\n",
    "  - 学习率\n",
    "  - 正则化惩罚因子\n",
    "  - 最好每隔几个step就对loss、accuracy等等进行一次输出，这样才能有根据地进行调整"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
